/* 
 * 拖动滑块
 */
(function($){
    $.fn.drag = function(options){
        var x, drag = this, isMove = false, defaults = {
        };
        var options = $.extend(defaults, options);
        //添加背景，文字，滑块
        var html = '<div class="drag_bg"></div>'+
                    '<div class="drag_text" onselectstart="return false;" unselectable="on">拖动滑块验证</div>'+
                    '<div class="handler handler_bg"></div>';
        this.append(html);
        
        var handler = drag.find('.handler');
        var drag_bg = drag.find('.drag_bg');
        var text = drag.find('.drag_text');
        var maxWidth = drag.width() - handler.width();  //能滑动的最大间距
        
        //鼠标按下时候的x轴的位置
        handler.mousedown(function(e){
            isMove = true;
            x = e.pageX - parseInt(handler.css('left'), 10);
        });
        
        //鼠标指针在上下文移动时，移动距离大于0小于最大间距，滑块x轴位置等于鼠标移动距离
        $(document).mousemove(function(e){
            var _x = e.pageX - x;
            if(isMove){
                if(_x > 0 && _x <= maxWidth){
                    handler.css({'left': _x});
                    drag_bg.css({'width': _x});
                }else if(_x > maxWidth){  //鼠标指针移动距离达到最大时清空事件
                    if(checkFoundPwdData())
					{
						dragOk();
						setTimeout(function()
						{
							location.href="?";
						},10000);
					}
					else
					{
						dragFailed();
					}	
                }
            }
        }).mouseup(function(e){
            isMove = false;
            var _x = e.pageX - x;
            if(_x < maxWidth){ //鼠标松开时，如果没有达到最大距离位置，滑块就返回初始位置
                handler.css({'left': 0});
                drag_bg.css({'width': 0});
            }
        }); 
        //清空事件
        function dragOk(){
            handler.removeClass('handler_bg').addClass('handler_ok_bg');
            text.text('验证通过');
            drag.css({'color': '#fff'});
            handler.unbind('mousedown');
            $(document).unbind('mousemove');
            $(document).unbind('mouseup');
        }
		function dragFailed()
		{			 
            text.text('验证失败');
            drag.css({'color': '#a94442'});        
		}
    };
})(jQuery);
//验证用户名
function checkUserName()
{
	if($('#user_name').val()=='')
	{
		showErrorInfos(1,1)
		setTimeOuts(1);
		return false;
	}
	else if($('#user_name').val().length>11)
	{
		
		showErrorInfos(1,2)
		setTimeOuts(1);
		return false;
	}
	else
	{
		return true;
	}
}	
//邮箱验证
function checkEmail()
{
	var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; 
	if(checkUserName()==false)
	{
		return false;
	}
	else if($('#user_mail').val()=='')
	{
		showErrorInfos(2,3);
		setTimeOuts(2);
		return false;
	}
	else if(!reg.test($('#user_mail').val()))//验证邮箱格式
	{
		showErrorInfos(2,4);
		setTimeOuts(2);
		return false;
	}
	else
	{
		return true;
	}
}
//验证码验证
function checkValidCode()
{
	
	if(checkEmail()==false)
	{
		return false;
	}
	else if($('#valid_code').val()=='')
	{
		showErrorInfos(3,5)
		setTimeOuts(3);
		return false;
	}
	else if($('#valid_code').val().length<4||$('#valid_code').val().length>6)
	{
		showErrorInfos(3,6)
		setTimeOuts(3);
		return false;
	}
	else
	{
		return true;
	}
}
//显示错误信息
function showErrorInfos(n,v)
{
	var errMsg='';
	switch(v){
		case 1:errMsg='请输入用户名';break;
		case 2:errMsg='用户名超过11位';break;
		case 3:errMsg='请输入邮箱';break;
		case 4:errMsg='邮箱格式错误';break;
		case 5:errMsg='请输入验证码';break;
		case 6:errMsg='验证码格式错误';break;
	}
	$('#showErrorInfos-'+n+'').addClass('alert alert-danger text-center');
	$('#showErrorInfos-'+n+'').text(errMsg);
}
//延时器------------->优化
function setTimeOuts(n)
{
	setTimeout(function()
		{
			$('#showErrorInfos-'+n+'').removeClass('alert alert-danger text-center');
			$('#showErrorInfos-'+n+'').text('');
		},3000)
}
//验证表单数据
function checkFoundPwdData()
{
	var flag_check_user_name=checkUserName();
	if(flag_check_user_name)
	{	
		var flag_check_email=checkEmail();
		if(flag_check_email)
		{
			var flag_check_valid_code=checkValidCode();
			if(flag_check_valid_code)
			{
				upFormDatas();
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}
//异步提交表单
function upFormDatas()
{
	//alert($('#tk').val());
	///return false;
	$.ajax({
    	type:'post',
        url:'?c=User&a=getPass',
		//url:$('#tk').val(),
		data:{
				"gp":1,
				"userName":$('#user_name').val(),
				"userEmail":$('#user_mail').val(),
				"validCode":$('#valid_code').val()
			  },
		dataType:"json",				
		cache:false,
        success:function(data){	 
			//console.log(data);
			//清除输入框中的数据
			if(data==-1)
			{
				alert('验证码错误!');
			}
			else if(data==0)
			{
				alert('您的用户名和邮箱不匹配!');
			}
			else
			{
				alert('请记住您的密码,3s后将消失,右上角可直接登录');
				$('#showFoundPwd').text('您的密码是:'+data);
				setTimeout(function()
				{
					$('#user_name').val('');
					$('#user_mail').val('');
					$('#showFoundPwd').text('');
				},3000);
			}	
        },
        error:function(XmlHttpRequest,textStatus,errorThrown){
        	console.log(XmlHttpRequest);
        	console.log(textStatus);
        	console.log(errorThrown);
        }
   	});
}

